#ifndef __APP_PTHREAD_POOL_H__
#define __APP_PTHREAD_POOL_H__

#include <pthread.h>
#include <stdlib.h>
#include <mqueue.h>

#include "log.h"

typedef struct {
    int (*task_func)(void *);
    void *arg;
} Task;

/**
 * @brief 初始化线程池
 * 
 * @param num_threads 线程池中的线程数
 * @return int 0 成功，-1 失败
 */
int pthread_pool_init(int num);
/**
 * @brief 销毁线程池
 * 
 */
void pthread_pool_destroy();
/**
 * @brief 注册任务
 * 
 * @param task_func 任务函数
 * @param arg 任务参数
 */
int pthread_pool_registerTask(int (*task_func)(void *), void *arg);

#endif
